#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include "comm.h"

using namespace std;

int main()
{
    // 客户端以只写的方式打开管道
    int wfd = open(FILENAME, O_WRONLY);
    if (wfd < 0)
    {
        // 打开失败则退出进程
        cerr << "errno" << errno << "strerror" << strerror(errno) << endl;
        return 1;
    }
    cout << "open fifo success... write" << endl;

    while (1)
    {
        string message;
        cout << "Please Enter# ";
        // 不以空格为结束符的方式，写入一段数据到字符串message
        getline(cin, message);

        // 将字符串中的数据写入到管道中
        ssize_t n = write(wfd, message.c_str(), message.size());
        if (n < 0)
        {
            // 写入失败则退出进程
            cerr << "errno" << errno << "strerror" << strerror(errno) << endl;
            return 2;
        }
    }

    // 关闭写端
    close(wfd);
    cout << "close fifo success...write" << endl;
    return 0;
}